快速上手:多节点部署指南
准备环境
- 购买多台配备GPU的机器,并同步安装GPU驱动,其中一台作为主节点,其它作为工作节点(下文示例为2台机器各2个GPU)
- 远程连接GPU实例,进入机器终端
- 分别运行以下命令安装 Docker环境 和 NVIDIA容器工具包
curl -fsSL https://github.com/alibaba/ROLL/blob/main/scripts/install_docker_nvidia_container_toolkit.sh | sudo bash
环境配置
从镜像地址中选择你需要的Docker镜像,下文均以 torch2.6.0 + vLLM0.8.4 为例
# 1. 启动一个docker容器,指定GPU支持,暴露容器端口,并始终保持容器运行
sudo docker run -dit \
--gpus all \
-p 9001:22 \
--ipc=host \
--shm-size=10gb \
roll-registry.cn-hangzhou.cr.aliyuncs.com/roll/pytorch:nvcr-24.05-py3-torch260-vllm084 \
/bin/bash
# 2. 进入docker容器
# 您可以使用 `sudo docker ps` 命令查找运行中的容器ID或名称。
sudo docker exec -it <container_id> /bin/bash
# 3. 验证GPU是否可见
nvidia-smi
# 4. 克隆项目代码
git clone https://github.com/alibaba/ROLL.git
# 5. 安装项目依赖(选择对应镜像的requirements文件)
cd ROLL
pip install -r requirements_torch260_vllm.txt -i https://mirrors.aliyun.com/pypi/simple/
pipeline运行
- 在主节点配置环境变量:
export MASTER_ADDR="ip of master node"
export MASTER_PORT="port of master node" # Default: 6379
export WORLD_SIZE=2
export RANK=0
export NCCL_SOCKET_IFNAME=eth0
export GLOO_SOCKET_IFNAME=eth0
注意事项:
MASTER_ADDR和MASTER_PORT定义了分布式集群的通信端点。WORLD_SIZE指定了集群中的节点总数(例如 2 个节点)。RANK用于标识节点的角色(0 表示主节点,1、2、3 等表示工作节点)。NCCL_SOCKET_IFNAME和GLOO_SOCKET_IFNAME指定了 GPU/集群通信使用的网络接口(通常为 eth0)。
- 在主节点上运行pipeline
bash examples/agentic_demo/run_agentic_pipeline_frozen_lake_multi_nodes_demo.sh
ray集群启动后,会看到下面的log示例:

- 在工作节点配置环境变量
export MASTER_ADDR="ip of master node"
export MASTER_PORT="port of master node" # Default: 6379
export WORLD_SIZE=2
export RANK=1
export NCCL_SOCKET_IFNAME=eth0
export GLOO_SOCKET_IFNAME=eth0
- 在工作节点上连接主节点启动的ray集群:
ray start --address='ip of master node:port of master node' --num-gpus=2